#ifndef CITY_H
#define CITY_H
#include<QString>
#include<QVector>
#include"date.h"
#include<QMap>
using namespace std;
class city;
const int INF = 1e9;
struct Tinfo
{
    Tinfo();
    Tinfo(int newc,city * f,city * l,date newb,date newl);
    Tinfo(const Tinfo & y);
    int cost;
    date b,l;
    city * f , *e;
};
class city
{
private:
    QString name;
    QVector<Tinfo>paths[2];//0是交通，1是航班
public:

    city();
    city(QString n);
    city(const city &c);
    QString getname();//获取城市名字
  //  int getcost(QString t,bool type);
  //  date getbdate(QString t,bool type);//获取起始日期
  // date getldate(QString t,bool type);//获取到达日期
  //city * getlcity(QString t,bool type);//获取终点城市
    QVector<Tinfo *> findinfo(QString lcity,bool type);//找到所有终点对应的info
    void addinfo(city * e,date bdate,date ldate,int money,bool type);
    void set(int index,int newc,city * k,date newb,date newl,bool type);//设置paths中下标为index的路径的信息
    void deleteTinfo(QString t,bool type);//删除所有终点为t，类型为type的Tinfo
    void setname(QString t);
    void deletetp(Tinfo * tp);
    //int getmincost(QString t,bool type,date * tmp);
    QVector<Tinfo *>timeinfo(date t,bool type);//找出在t时刻能够走的所有路线
    date dfs(date now,city  * p,city * e,bool type,QMap<QString,Tinfo *> & pre,QMap<QString,date> & tmp_cost, date tmp_d);//遍历,传入的vector是用于保存前驱
};


#endif // CITY_H
